//  运算符 
//  1 - 减号运算调调用时 会默认（隐式） 调用 Number()

// "3" - 1;  => Number('3') - 1  => 3 - 1 = 2 
// true - 1 => Number(true) - 1 => 1 - 1 = 0
//  3 - 1 => 2
//  null - 1 = -1 
//  undefined - 1 = NaN
//  "ab" - 1 => Number("ab") - 1 = NaN -1 => NaN

//   2  + 运算符   当其中一个数值类型为字符串的会进行字符串拼接  如果都为数值 则进行数字运算  其他和减法一样

//  "3" + 1 = "31" 
//  3 + 1 = 4 
//  false + 1 = 1 
//  null + 1 = 1
// undefined + 1 = NaN

// 3 * 和减法一样
// 4 / 和减法一样 
// 5 % 
//  自增 ++
// 默认调用Number()   当++在变量前面是   先自增 赋值    放++在变量后面是   先赋值  在自增 
// ++a > Number(a) + 1  => 赋值
// a++ => 赋值  => Number(a) + 1
// a = 1;
// b = 1;
// // c = ++a;
// // 1  a = Number(a) + 1
// // 2  c = a;
// d = b++;

// 1  d = number(b)
// 2  b = number(b) + 1

// var a = 1;
// var b = a++;

// //  1  var b = a;
// //  2  a = a + 1  // a = Number(a) + 1 
// var c = ++a;
// //  1 a = a + 1
// //  2 c = a

// var b = 1;
// var a = b++;

// var a = b;
// b = b + 1;

// var a = ++b;
// b = b + 1
// var a = b;

//  自检 --

//a   16  17  18  a = 18
//b   16  17  18  b = 18
//c   17  18      c = 18
//d   18  19      d = 19
//e   18  19      e = 19
//f   18  19      f = 19
//g   18          g = 18
//k   19          k = 19
//j   17          j = 17

// var a = 16        
// b = a++   
// c = ++b    
// d = ++a   
// e = d++
// f = ++c
// g = f++
// k = ++e
// j = b++
// console.log(a,b,c,d,e,f,g,k,j)

// 赋值运算符
// =
// var a = 1; 
// +=
// var a = 1;
// a+=1;  => a = a + 1
// -=
// *=
// /-
// %=
// 比较运算符
// ==  比较的值  会发生隐式类型转换
// 两个字符串相比  比较ascll码的值
// 其他转化为数字值进行比较
// null 特殊  
// === 比较的值和类型  不会发生隐式类型转换
// NaN === NaN  //false

// !=  //不等于 发生隐式类型转换
// !==  //不全等  不发生隐式类型转换

// >   字符串相比 比较ASCLL码   
//     其他比较转化为数字进行比较
